package _01_动态数组;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

public class _202_快乐数 {


    public static void main(String[] args) {

        _202_快乐数 v = new _202_快乐数();
        System.out.println(v.isHappy(121));
    }

    public boolean isHappy(int n) {
        Set<Integer> visited = new HashSet<>();
        // 当n为1，或者n为一位数的时候
        while (n != 1) {

            int total = 0;
            // 每一位平方和相加
            while (n != 0) {
                total += Math.pow(n % 10, 2);
                n /= 10;
            }
            if (visited.contains(total)) return false;
            visited.add(total);
            n = total;
        }

        return true;
    }

}
